package com.ruoyi.scheme.service.decision;

import com.ruoyi.scheme.pojo.Plant;
import com.ruoyi.scheme.pojo.PlatFormAndSlopeEntity;
import com.ruoyi.scheme.pojo.RepairMeasure;
import org.kie.api.KieBase;

import java.time.LocalDateTime;
import java.util.List;

/**
 * Drools 规则引擎服务接口
 * 封装Drools规则引擎的加载、Fact插入和规则执行逻辑
 */
public interface DroolsRuleEngineService {
    /**
     * 执行Drools规则，生成预修复措施列表
     * @param kieBase
     * @param platFormAndSlopeEntity
     * @return
     */
    List<RepairMeasure> executeRules(KieBase kieBase, int locationType, PlatFormAndSlopeEntity platFormAndSlopeEntity);

    /**
     * 执行Drools规则，计算植被种植密度
     * @param kieBase
     * @param plant
     * @param platFormAndSlopeEntity
     * @return
     */
    Plant executePlantDensityRules(KieBase kieBase, Plant plant, PlatFormAndSlopeEntity platFormAndSlopeEntity);
}
